import os
import re


class PrefixRemover:
    def __init__(self, directory, prefix_pattern=r'^\d+\.\s*'):
        """
        初始化PrefixRemover类。

        参数:
        directory (str): 需要处理的文件夹路径。
        prefix_pattern (str): 正则表达式，用于匹配需要去除的文件名前缀。
        """
        self.directory = directory
        self.prefix_pattern = prefix_pattern

    def remove_prefix_from_filenames(self):
        """
        遍历指定文件夹中的所有文件，并去除文件名中的前缀。
        """
        try:
            # 获取文件夹中的文件列表
            files = os.listdir(self.directory)

            for filename in files:
                # 使用正则表达式检查文件名是否符合需要去除前缀的模式
                if re.match(self.prefix_pattern, filename):
                    # 构建新的文件名，去除前缀
                    new_filename = re.sub(self.prefix_pattern, '', filename)

                    # 构建完整的旧文件路径和新文件路径
                    old_file_path = os.path.join(self.directory, filename)
                    new_file_path = os.path.join(self.directory, new_filename)

                    # 重命名文件
                    os.rename(old_file_path, new_file_path)
                    print(f'Renamed "{filename}" to "{new_filename}"')

        except Exception as e:
            print(f"An error occurred: {e}")


if __name__ == "__main__":
    # 指定文件夹路径
    directory = r"E:\彭涛 Python爬虫训练营"

    # 实例化PrefixRemover类
    remover = PrefixRemover(directory)

    # 移除文件名中的前缀
    remover.remove_prefix_from_filenames()